<?php

/**
 * 优惠券模型
 * Class Coupon_codesModel
 */
class Coupon_codesModel extends BaseModel
{
    var $table = 'coupon_codes';
    var $prikey = 'id';
    var $_name = 'coupon_codes';
    var $_relation = array(
        // 优惠券-仓库id，一对多反向
        'belongs_to_storestock' => array(
            'model' => 'storestock',
            'type' => BELONGS_TO,
            'foreign_key' => 'storestock_id',
            'reverse' => 'has_storestock',
        ),
        // 优惠券-店铺，一对多反向
        'belongs_to_store' => array(
            'model' => 'store',
            'type' => BELONGS_TO,
            'foreign_key' => 'store_id',
            'reverse' => 'has_coupon_codes',
        ),
    );

    // 用常量的方式定义支持的优惠券类型
    // 满减
    const TYPE_FULLMINUX = '1';
    // 百分比折扣
    const TYPE_PERCENT = '2';
    // 商家自定义价格
    const TYPE_CUSTOMPRICE = '3';

    // 设置映射关系
    public static $typeMap = array(
        self::TYPE_FULLMINUX => '满减',
        self::TYPE_PERCENT => '折扣',
        self::TYPE_CUSTOMPRICE => '自定义价格',
    );

    /**
     * 设置活动描述
     * @param int $id 优惠券id
     * @return string
     */
    public function getDescription($id)
    {
        // 当前id的模型
        $model = $this->get('id=' . $id);

        // 描述
        $str = '';

        // 如果最低金额大于0，那么就加入满减提示
        if ($model['min_amount'] > 0) {
            $str = '满' . str_replace('.00', '', $model['min_amount']);
        }
        // 如果是折扣，就设置%提示
        if ($model['type'] === self::TYPE_PERCENT) {
            return $str . '优惠' . str_replace('.00', '', (1 - $model['value']) * 100) . '%';
        }

        // 返回
        return $str . '减' . str_replace('.00', '', $model['value']);
    }
}

